// HSS.Logging.ILogConfiguration.cs
// ----------------------------------------------------------------------------
// Licensed under the MIT license
// http://www.opensource.org/licenses/mit-license.html
// ----------------------------------------------------------------------------
// HighSpeed-Solutions, LLC
// Copyright (c) 2001-2010
// ----------------------------------------------------------------------------
// File:       ILogConfiguration.cs
// Author:     HSS\gbanta
// Created:    08/12/2010
// Modified:   12/04/2010
// ----------------------------------------------------------------------------
namespace HSS.Logging
{
	/// <summary>
	/// Configuration config for a LogServer instance
	/// </summary>
	public interface ILogConfiguration : IConfigurationElement, ISecuredConfigurationElement, HSS.Data.IDataContainer
	{
		/// <summary>
		/// The Type of log to write event entries to
		/// </summary>
		EventLogType LogType { get; set; }

		/// <summary>
		/// Indicate whether or not to auto truncate the eventlog
		/// </summary>
		bool AutoTruncate { get; set; }

		/// <summary>
		/// If AutoTruncate is true indicates the time of day in which to execute the Truncate Command
		/// </summary>
		System.DateTime TruncateAt { get; set; }

		/// <summary>
		/// If AutoTruncate is true indicates the number of days to retain
		/// </summary>
		int DaysToRetain { get; set; }

		/// <summary>
		/// The Database ConnectionString
		/// </summary>
		string DbConnString { get; set; }

		/// <summary>
		/// Persists the current instance to file
		/// </summary>
		void SaveInstance();
	}
}